MQTT (Message Queuing Telemetry Transport) 是由 IBM 的 Andy Stanford-Clark 和 Eurotech 的 Arlen Nipper 於 1999 年發明的通訊協定。目前主流的版本是 v3.1.1版本,而目前最新的版本是 v5.0。
MQTT 主要目的為在網路頻段窄、穩定性低的情況下使用的協定,建立在 TCP/IP 協定上,Header 僅兩個 Byte,相當適合物聯網使用。
MQTT 是透過 發布 (Publish) 與訂閱 (Subscribe) 的方式執行一對多的通訊。主要的腳色有:
MQTT 的主題是階層式的結構,使用的是 UTF-8 的編碼,透過/
將每一層的主題分層。
例子:
myhome/groundfloor/livingroom/temperature
Germany/Bavaria/car/2382340923453/latitude
主要的限制有:
另外,有以下兩個使用方式:
取得 livingroom 下面所有的訂閱主題
myhome/groundfloor/livingroom/#
取得所有房間的溫度數值
myhome/groundfloor/+/temperature
我們在定義主題時,有以下幾點可以遵循:
Qos ( Quality of Service ) 通訊時的服務品質,MQTT 將 Qos 分為三個等級: